<!DOCTYPE html>
<html lang="ar">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body class="rtl">
		<h1>[name]</h1>

		<p class="desc">
			تخزن هذه الفئة بيانات لسمة (مثل مواضع الرأس ، ومؤشرات الوجه ، والمعايير ، والألوان ، والأشعة فوق البنفسجية ، وأي سمات مخصصة) المرتبطة
			مع [page:BufferGeometry] ، مما يسمح بتمرير البيانات بشكل أكثر كفاءة
			إلى وحدة معالجة الرسومات. انظر تلك الصفحة للحصول على التفاصيل ومثال على الاستخدام. عند العمل
			مع بيانات مثل المتجهات ، قد تكون طرق المساعد <i>.fromBufferAttribute(attribute, index)</i>
			على [page:Vector2.fromBufferAttribute Vector2]،
			[page:Vector3.fromBufferAttribute Vector3]،
			[page:Vector4.fromBufferAttribute Vector4]، و
			[page:Color.fromBufferAttribute Color] قد تكون مفيدة.
		</p>
			
		<h2>المنشئ (Constructor)</h2>
		<h3>[name]([param:TypedArray array]، [param:Integer itemSize]، [param:Boolean normalized])</h3>
		<p>
			[page:TypedArray array] - يجب أن يكون
			[link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/TypedArray TypedArray]. يستخدم لإنشاء المخزن المؤقت. <br />
			يجب أن يحتوي هذا المصفوفة على
			<code>
			itemSize * numVertices
			</code>
			عناصر ، حيث numVertices هو عدد الرؤوس في المرتبطة
			[page:BufferGemetry BufferGeometry].<br /><br />
			
			[page:Integer itemSize] - عدد قيم المصفوفة التي يجب
			ترتبط برأس معين. على سبيل المثال ، إذا كانت هذه السمة هي
			تخزين متجه من 3 مكونات (مثل الموضع أو الطبيعي أو اللون) ، فإن
			itemSize يجب أن يكون 3.
			<br /><br />
			
			[page:Boolean normalized] - (اختياري) ينطبق على البيانات الصحيحة فقط.
			يشير إلى كيفية تعيين البيانات الأساسية في المخزن المؤقت إلى القيم في
			كود GLSL. على سبيل المثال ، إذا كان [page:TypedArray array] هو نسخة من
			UInt16Array ، و [page:Boolean normalized] صحيحًا ، فإن القиم `0 -
			+65535` في بيانات المصفوفة ستُخرج إلى 0.0f - +1.0f في GLSL
			attribute. ستُخرج Int16Array (signed) من -32768 - +32767 إلى -1.0f
			- +1.0f. إذا كان [page:Boolean normalized] خطأً ، فستكون القيم
			تحول إلى floats دون تعديل ، أي 32767 يصبح 32767.0f.
		</p>
			
		<h2>الخصائص (Properties)</h2>

		<h3>[property:TypedArray array]</h3>
		<p>ال[page:TypedArray array] التي تحمل البيانات المخزنة في المخزن المؤقت.</p>

		<h3>[property:Integer count]</h3>
		<p>
			يخزن طول [page:BufferAttribute.array array] مقسومًا على
			[page:BufferAttribute.itemSize itemSize]. Read-only property.<br /><br />

			إذا كان المخزن يخزن متجهًا من 3 مكونات (مثل الموضع أو الطبيعي أو اللون) ، فسيحسب عدد هذه المتجهات المخزنة.
		</p>

		<h3>[property:Boolean isBufferAttribute]</h3>
		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى من نوع [name].</p>

		<h3>[property:Integer itemSize]</h3>
		<p>
			طول المتجهات التي يتم تخزينها في
			[page:BufferAttribute.array array].
		</p>

		<h3>[property:String name]</h3>
		<p>اسم اختياري لهذا الحدث من السمة. الافتراضي هو سلسلة فارغة.</p>

		<h3>[property:Boolean needsUpdate]</h3>
		<p>
			علامة للإشارة إلى أن هذه السمة قد تغيرت ويجب إعادة إرسالها إلى
			وحدة معالجة الرسومات. قم بتعيين هذا على true عند تعديل قيمة المصفوفة.<br /><br />

			تعيين هذا على true يزيد أيضًا من [page:BufferAttribute.version version].
		</p>

		<h3>[property:Boolean normalized]</h3>
		<p>
			يشير إلى كيفية تعيين البيانات الأساسية في المخزن المؤقت إلى القيم في
			كود GLSL. راجع المُنشئ أعلاه للحصول على التفاصيل.
		</p>

		<h3>[property:Function onUploadCallback]</h3>
		<p>
			دالة رد اتصال يتم تنفيذها بعد أن قام Renderer بنقل
			بيانات مصفوفة السمة إلى وحدة معالجة الرسومات.
		</p>

		<h3>[property:Object updateRange]</h3>
		<p>
			كائن يحتوي على:<br />
			[page:Integer offset]: الافتراضية هي `0`. الموضع الذي يجب أن يبدأ فيه
			التحديث.<br />
			[page:Integer count]: الافتراضية هي `-1` ، وهذا يعني عدم استخدام التحديث
			المدى. <br /><br />

			يمكن استخدام هذا لتحديث بعض مكونات المتجهات المخزنة فقط (على سبيل المثال ، فقط المكوِّن المرتبط باللون).
		</p>

		<h3>[property:Usage usage]</h3>
		<p>
			يحدد نمط الاستخدام المقصود لمخزن البيانات لأغراض التحسين
			. يتوافق مع معلمة `usage` من
			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData](). الافتراضي هو [page:BufferAttributeUsage StaticDrawUsage]. راجع الاستخدام [page:BufferAttributeUsage constants] لجميع
			القيم الممكنة. <br /><br />

			ملاحظة: بعد الاستخدام الأولي للمخزن المؤقت ، لا يمكن تغيير استخدامه.
			بدلاً من ذلك ، قم بإنشاء نسخة جديدة وتعيين الاستخدام المطلوب قبل التالي
			جعل.
		</p>

		<h3>[property:Integer version]</h3>
		<p>
			رقم إصدار ، يزداد كل مرة
			[page:BufferAttribute.needsUpdate needsUpdate] يتم تعيين خاصية على true.
		</p>

		<h2>الوظائف (Methods)</h2>

		<h3>[method:this applyMatrix3]([param:Matrix3 m])</h3>
		<p>
			تطبق المصفوفة [page:Matrix3 m] على كل عنصر Vector3 من هذا
			BufferAttribute.
		</p>

		<h3>[method:this applyMatrix4]([param:Matrix4 m])</h3>
		<p>
			تطبق المصفوفة [page:Matrix4 m] على كل عنصر Vector3 من هذا
			BufferAttribute.
		</p>

		<h3>[method:this applyNormalMatrix]([param:Matrix3 m])</h3>
		<p>
			تطبق المصفوفة الطبيعية [page:Matrix3 m] على كل عنصر Vector3 من هذا
			BufferAttribute.
		</p>

		<h3>[method:this transformDirection]([param:Matrix4 m])</h3>
		<p>
			تطبق المصفوفة [page:Matrix4 m] على كل عنصر Vector3 من هذا
			BufferAttribute ، مع تفسير العناصر كمتجهات اتجاه.
		</p>

		<h3>[method:BufferAttribute clone]()</h3>
		<p>إرجاع نسخة من هذه bufferAttribute.</p>

		<h3>[method:this copy]([param:BufferAttribute bufferAttribute])</h3>
		<p>ينسخ BufferAttribute آخر إلى هذه BufferAttribute.</p>

		<h3>[method:this copyArray](array)</h3>
		<p>
			انسخ المصفوفة المعطاة هنا (والتي يمكن أن تكون مصفوفة عادية أو TypedArray) إلى
			[page:BufferAttribute.array array].<br /><br />

			انظر
			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set] للحصول على ملاحظات حول المتطلبات إذا كان يتم نسخ TypedArray.
		</p>

		<h3>[method:this copyAt]([param:Integer index1]، [param:BufferAttribute bufferAttribute]، [param:Integer index2])</h3>
		<p>انسخ متجهًا من bufferAttribute[index2] إلى [page:BufferAttribute.array array][index1].</p>

		<h3>[method:Number getComponent]( [param:Integer index], [param:Integer component] ) </h3>
		<p>Returns the given component of the vector at the given index.</p>

		<h3>[method:Number getX]([param:Integer index])</h3>
		<p>يعيد مكون x من المتجه في المؤشر المحدد.</p>

		<h3>[method:Number getY]([param:Integer index])</h3>
		<p>يعيد مكون y من المتجه في المؤشر المحدد.</p>

		<h3>[method:Number getZ]([param:Integer index])</h3>
		<p>يعيد مكون z من المتجه في المؤشر المحدد.</p>

		<h3>[method:Number getW]([param:Integer index])</h3>
		<p>يعيد مكون w من المتجه في المؤشر المحدد.</p>

		<h3>[method:this onUpload]([param:Function callback])</h3>
		<p>
			يضع قيمة خاصية onUploadCallback.<br /><br />

			في [example:webgl_buffergeometry WebGL / Buffergeometry] يتم استخدام هذا
			لتحرير الذاكرة بعد نقل المخزن إلى وحدة معالجة الرسومات.
		</p>

		<h3>[method:this set]([param:Array value]، [param:Integer offset])</h3>
		<p>
			value - [page:Array] أو [page:TypedArray] لنسخ القيم منه.
			<br />
			offset - (اختياري) فهرس [page:BufferAttribute.array array] في
			الذي يجب البدء في النسخ.<br /><br />

			المكالمات
			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]([page:Array value]، [page:Integer offset]) على
			[page:BufferAttribute.array array].<br /><br />

			على وجه الخصوص ، انظر تلك الصفحة للحصول على متطلبات [page:Array value] كونها
			[page:TypedArray].
		</p>

		<h3>[method:this setUsage]([param:Usage value])</h3>
		<p>
			قم بتعيين [page:BufferAttribute.usage usage] إلى value. راجع الاستخدام
			[page:BufferAttributeUsage constants] لجميع قيم الإدخال الممكنة.
			<br /><br />

			ملاحظة: بعد الاستخدام الأولي للمخزن المؤقت ، لا يمكن تغيير استخدامه.
			بدلاً من ذلك ، قم بإنشاء نسخة جديدة وتعيين الاستخدام المطلوب قبل التالي
			جعل.
		</p>
		
		<h3>[method:Number setComponent]( [param:Integer index], [param:Integer component], [param:Float value] ) </h3>
		<p>Sets the given component of the vector at the given index.</p>

		<h3>[method:this setX]([param:Integer index], [param:Float x])</h3>
		<p>تضبط مكون x من المتجه في المؤشر المحدد.</p>

		<h3>[method:this setY]([param:Integer index], [param:Float y])</h3>
		<p>تضبط مكون y من المتجه في المؤشر المحدد.</p>

		<h3>[method:this setZ]([param:Integer index], [param:Float z])</h3>
		<p>تضبط مكون z من المتجه في المؤشر المحدد.</p>

		<h3>[method:this setW]([param:Integer index], [param:Float w])</h3>
		<p>تضبط مكون w من المتجه في المؤشر المحдد.</p>

		<h3>[method:this setXY]([param:Integer index], [param:Float x], [param:Float y])</h3>
		<p>تضبط مكونات x و y من المتجه في

		<h2>المصدر (Source)</h2>
		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
